<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>vue 组件的创建</title>
  <style>

  </style>
</head>

<body>
  <div id="app">
    <div>
      <!-- <input type="text" v-model="searchValue" @keyup.enter="searchFn"> -->
      <input-search></input-search>
      <br>
      <input-search></input-search>
      <hr />
      <msg-title></msg-title>
      <books-dog></books-dog>
    </div>
  </div>
  <script src="./vue.js"></script>
  <script>
    // console.log( Vue )

    // 全局创建一个组件：
    Vue.component( 'input-search', {
      //组件里面的data 必须是一个函数，返回一个新对象。才可以避免重复调用组件时，返回的是同一个对象。
      data () {
        return {
          searchValue: '',
        }
      },
      methods: {
        searchFn () {
          console.log( "搜索的结果是：", this.searchValue )
        }
      },
      template: `<div>
        <input type="text" v-model="searchValue" @keyup.enter="searchFn">
        <!-- <msg-title></msg-title>
         <books-dog></books-dog> -->
        </div>`,

    } );


    // 创建一个VUE选项的对象：
    let obj = {
      data () {
        return {
          title: '逛书店的狗'
        }
      },
      template: "<h3>{{title}}</h3>"
    }

    var vm = new Vue( {
      el: "#app",
      // 注册子组件（创建并注册）,局部组件，只能在组件内使用！
      // 创建组件--->注册组件-->使用组件

      components: {
        'msg-title': {
          data () {
            return {
              title: '一个人，一天狗，一只枪，一天9999999.'
            }
          },
          template: "<div><h3>{{title}}</h3><books-dog></books-dog></div>",
          components: {
            'books-dog': obj,
          }
        },
        'books-dog': obj,
      }

    } )
  </script>
</body>

</html>